A method of this type is described in European Patent Application EP-A-0203165 under the name QPSX protocol, but in the meantime it has become better known in specialist circles by the name DQDB protocol, which name will also be used for it hereinafter.
According to the DQDB protocol, use is made of two transmission channels, in general data buses, with mutually opposing communication directions. A series of successive access units is connected to the two buses. The information to be transmitted is transferred from temporary storage to time slots of a fixed size (53 bytes).
Access units which have data to transmit select one of the two buses according to the destination of the data, for example. The data packets to be transmitted are dispatched via the time slots passing by in the chosen direction after first completing an access protocol relating to time slots for each time slot involved. This access protocol proceeds as follows:
An access unit which receives a report from outside the transmission system above described for transmission of a data packet in the transmission direction of bus 1 places, as soon as this is possible, a bus 1 request bit for a time slot (hereinafter referred to simply as a request bit) in a predetermined section of a time slot on bus 2. By this means the access units downstream in the transmission direction of bus 2, therefore upstream in the transmission direction of bus 1, are informed that a packet is ready for transmission on bus 1 and that these access units must allow an empty time slot to pass by on bus 1 for that packet. In this way, as it were, a distributed FIFO buffer is constructed for each bus. For this mechanism a so-called request counter, a so-called countdown counter and a so-called still to be transmitted or untransmitted request counter are provided for each bus in each access unit.
If an access unit has nothing to transmit, the passage of a request bit on bus 2, for example, results in the content of its request counter belonging to bus 2 being increased by one (incremented). The bus 2 request counter in every access unit downstream on bus 2 thus contains an indication of the number of requests for transmission slots on bus 1. Conversely, the request counter for bus 1 in every access unit downstream on bus 1 contains an indication of the number of requests for transmission slots on bus 2. Each empty time slot, i.e. each possibility for transmitting data, which passes by an access unit on bus 1 results in the content of the request counter of bus 2 at the same access unit being reduced by one (decremented), and vice versa regarding bus 2 and bus 1.
In the following discussion of what happens when an access unit does have a packet to transmit, the term "the relevant access unit" means a particular access unit taken as an example for the purpose of the explanation.
When the relevant access unit has received data for transmission on bus 1, the content of the request counter of bus 2 is transferred to the countdown counter of bus 1 and the request counter of bus 2 is reset to zero. The countdown counter consequently contains information with regard to the number of requests passed on or originated before the relevant access unit had a data packet ready for transmission and the bus 2 request counter from that point in time starts to record the information with regard to the number of requests which were passed on or originated after that data packet was ready for transmission. For the relevant access unit to be able to transmit this data packet, a request bit must be transmitted on bus 2; the first step for so doing is the incrementing of the contents of the request counter and the untransmitted request counter of bus 2. As soon as the relevant access unit becomes able to transmit a request bit on bus 2, the content of the untransmitted request counter is decremented. In principle, a request bit is transmitted for each data packet to be transmitted. When an empty time slot passes by on bus 1, the content of the countdown counter of bus 1 is decremented, and when the content of the countdown counter consequently becomes zero, a data packet may be dispatched on bus 1 in the first subsequent empty time slot.
A drawback of the DQDB protocol is that the capacity of the buses for the transmission of data is not put to optimum use, because a request bit always passes through to the end of the bus, so that the situation can arise that empty time slots are reserved when that is no longer necessary, because the access unit which transmitted this request bit has already been able to transmit its data.
Significantly another protocol which is known in specialist circles by the name D.sup.3 Q protocol and which can be regarded as an improvement of the DQDB protocol has recently been proposed in the as yet unpublished Swiss Patent Application CH-A-00566/89-8. In this protocol use is made of the same reservation mechanism for time slots as in the DQDB protocol. An important difference from the DQDB protocol is, however, that request bits can be removed from a bus if they have become superfluous because the requesting access unit has already become able to transmit a data packet. This is called "erasure" of a request bit and is performed in the following way:
By means of an empty slot counter, each access unit records the number of empty time slots passing by on a bus for which no request has been submitted on the other bus. The empty slot counter thus contains information with regard to the number of possibilities for transmission which an access unit has allowed to pass through. If the content of the empty slot counter is not zero when a request is received on the other bus by means of a request bit in a time slot, it is then possible to erase that request bit by resetting it, because a possibility for transmission (an empty time slot) has already been allowed to pass through beforehand by the access unit. At the same time, the content of the empty slot counter is decremented, because one possibility for transmission is going to be used.
If the content of the empty slot counter is zero, each incoming request bit is allowed to pass through and the content of the request counter is incremented. The two counters can therefore never simultaneously have a content with a value greater than zero.
The request counter contains information with regard to the number of empty-time-slot requests either originated or passed on by the access unit on the particular channel. If the access unit has no packet to transmit the request counter content shows only passed-on requests. If in this situation an empty time slot passes by, the time slot is allowed to pass through and the content of the request counter is decremented.
In order to prevent a single empty time slot passing by several access units in each of which a request bit is reset, use is made of a handshake protocol which involves each station that receives and forwards an empty time slot, by which the content of the empty slot counter of an access unit is incremented. The preceding upstream access unit which forwarded the empty time slot needs to be informed that the empty time slot has been received. For this purpose a "handshake" request bit is transmitted in a time slot on the other bus, which results in the content of the empty slot counter in the preceding upstream access unit being decremented and the "handshake" request bit being erased (reset).
An advantage of the D.sup.3 Q protocol over the DQDB protocol is that request bits no longer pass through the entire bus. They cease reserving further empty time slots as soon as the request bits have passed by "their" empty time slot.
However, if the D.sup.3 Q protocol were to be combined with time slot erasure techniques, such as destination deletion, that is to say that emptying of a time slot when it has arrived at the packet destination, which can be desirable in order, on the one hand, to increase further the efficiency of the use of the transmission channels and, on the other hand, to make it possible to use the D.sup.3 Q protocol in a ring structure, a problem arises which will be illustrated with reference to a), b) and c) of FIG. 1.
FIG. 1 shows, by way of example, three access units or stations 7, 8 and 9. The bus 1 is always indicated diagrammatically above these stations and the bus 2 below these stations. The time slots are shown, likewise diagrammatically, as rectangles and are divided into a first section in which, inter alia, a request bit can be placed, and a second section for the data. If one of these sections is hatched in the figure, this means that it contains, respectively, data or a request bit, while the numeral in the hatched section indicates the station for which the data is intended or the station which has originated the request bit. The stages a), b) and c) of FIG. 1 show three successive steps, in which a time slot moves to the next station between successive steps.
It is assumed that, as shown in FIG. 1a, station 7 is ready to transmit data. For this purpose that station places a request bit in a time slot which, seen in the figure, goes via the bus 2 to the left. In the stations 8 and 9 this request bit causes the content of the request counter (RC) to be incremented, which is indicated by RC=1. It is then assumed that as shown in FIG. 1b, a filled time slot arrives via the other bus with a data packet which is intended for station 8.
FIG. 1b shows that the status of station 9 does not change. Station 8 reads the contents of the time slot and erases these (destination deletion) and decrements the content of the request counter belonging to this station because an empty time slot, and thus a possibility for transmission, is forwarded. Subsequently, as is shown in FIG. 1c, station 7 can transmit its data in this empty time slot. However, in station 9 a request for an empty time slot is still recorded in the request counter, whereas station 7 has already transmitted the data. In this way, more time slots are thus reserved than are needed and the effective capacity of the bus is reduced.
If the D.sup.3 Q protocol is to be used in a ring structure in which the ends of each of the buses are linked together, with a mechanism being provided for erasing the data contents from a time slot when it has reached its destination, this would lead to substantial problems because, as described above, request bits which have become superfluous remain recorded in request counters, which in the course of time would lead to a reduction in the effective capacity and ultimately to the complete standstill of communication on the ring.